package fr.fort.lycee.spring.entities;

// Generated 20 mars 2015 07:40:35 by Hibernate Tools 3.4.0.CR1

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import static javax.persistence.GenerationType.IDENTITY;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToOne;
import javax.persistence.Table;

/**
 * Compte generated by hbm2java
 */
@Entity
@Table(name = "compte", catalog = "lycee")
public class Compte implements java.io.Serializable {

	private Integer idCompte;
	private Role role;
	private String nomUtilisateur;
	private String mdp;
	private Professeur professeur;
	private Eleve eleve;

	public Compte() {
	}

	public Compte(Role role, String nomUtilisateur) {
		this.role = role;
		this.nomUtilisateur = nomUtilisateur;
	}

	public Compte(Role role, String nomUtilisateur, String mdp,
			Professeur professeur, Eleve eleve) {
		this.role = role;
		this.nomUtilisateur = nomUtilisateur;
		this.mdp = mdp;
		this.professeur = professeur;
		this.eleve = eleve;
	}

	@Id
	@GeneratedValue(strategy = IDENTITY)
	@Column(name = "idCompte", unique = true, nullable = false)
	public Integer getIdCompte() {
		return this.idCompte;
	}

	public void setIdCompte(Integer idCompte) {
		this.idCompte = idCompte;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "idRole", nullable = false)
	public Role getRole() {
		return this.role;
	}

	public void setRole(Role role) {
		this.role = role;
	}

	@Column(name = "nomUtilisateur", nullable = false, length = 254)
	public String getNomUtilisateur() {
		return this.nomUtilisateur;
	}

	public void setNomUtilisateur(String nomUtilisateur) {
		this.nomUtilisateur = nomUtilisateur;
	}

	@Column(name = "mdp", length = 254)
	public String getMdp() {
		return this.mdp;
	}

	public void setMdp(String mdp) {
		this.mdp = mdp;
	}

	@OneToOne(fetch = FetchType.LAZY, mappedBy = "compte")
	public Professeur getProfesseur() {
		return this.professeur;
	}

	public void setProfesseur(Professeur professeur) {
		this.professeur = professeur;
	}

	@OneToOne(fetch = FetchType.LAZY, mappedBy = "compte")
	public Eleve getEleve() {
		return this.eleve;
	}

	public void setEleve(Eleve eleve) {
		this.eleve = eleve;
	}

}
